<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>1.Object.defineProperty</title>
	</head>
	<body>
		<!-- 
				复习Object.defineProperty
							作用：给指定对象，添加指定属性，且可以“高级定制”
		-->
		<script type="text/javascript" >
			
			let number = 18

			let person = {
				name:'峰峰',
				gender:'男',
			}
			
			Object.defineProperty(person,'age',{
				// value:18, //指定属性的值
				// enumerable:true, //标识属性是否可枚举，默认值是false
				// writable:true, //标识属性是否可被修改，默认值是false
				// configurable:true,//标识属性是否可被删除，默认值是false

				//当有人读取person的age属性时，就会引起get函数（getter）的调用，且get函数的返回值，就是作为age的值
				get(){
					// console.log('get函数中的this是：',this) //this是当前对象
					return number
				},

				//当有人修改person的age属性时，就会引起set函数（setter）的调用
				set(val){
					// console.log('set函数中的this是：'this) //this是当前对象
					// console.log('有人修改person的age了，所以setter调用了，且修改后的值为：',x)
					number = val
				}
			})

			
		</script>
	</body>
</html>